package com.codedancer.campus.client.service;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.codedancer.campus.client.service.bo.confessionalWall.ConfessionWallAddBo;
import com.codedancer.campus.client.service.bo.confessionalWall.ConfessionalWallPageSearchBo;
import com.codedancer.campus.client.service.vo.confessionalWall.ConfessionalWallPageVo;
import com.codedancer.campus.client.service.vo.confessionalWall.ConfessionalWallVo;

public interface IConfessionalWallService {

    /**
     * 发布表白墙
     * @param confessionWallAddBo
     */
    void publish(ConfessionWallAddBo confessionWallAddBo);

    /**
     * 分页查询表白墙
     * @param confessionalWallPageSearchBo
     * @return
     */
    IPage<ConfessionalWallPageVo> page(ConfessionalWallPageSearchBo confessionalWallPageSearchBo);

    /**
     * 表白墙详情
     * @param uuid
     * @return
     */
    ConfessionalWallVo detail(String uuid);

    /**
     * 表白墙是否点赞
     * @param uuid
     * @param currentLoginUuid
     * @return
     */
    Boolean isKudos(String uuid, String currentLoginUuid);

    /**
     * 表白墙点赞
     * @param uuid
     * @param currentLoginUuid
     */
    void kudos(String uuid, String currentLoginUuid);

    /**
     * 表白墙取消点赞
     *
     * @param uuid
     * @param currentLoginUuid
     */
    void cancelKudos(String uuid, String currentLoginUuid);

    /**
     * 分页用户查询表白墙
     *
     * @param confessionalWallPageSearchBo
     * @return
     */
    IPage<ConfessionalWallPageVo> page2User(
        ConfessionalWallPageSearchBo confessionalWallPageSearchBo);

    /**
     * 开启评论
     *
     * @param uuid
     */
    void openComment(String uuid);

    /**
     * 关闭评论
     *
     * @param uuid
     */
    void closeComment(String uuid);

    /**
     * 删除表白墙
     * @param uuid
     */
    void delete(String uuid);

    /**
     * 同步自由广场
     * @param uuid
     */
    void syncLibertySquare(String uuid);

    /**
     * 取消同步自由广场
     * @param uuid
     */
    void cancelSyncLibertySquare(String uuid);
}
